<?php
class sis_transaksi_anggota_model extends MY_Model {
	var $model = 'sis_transaksi_anggota';
	
	function GetJSON()
	{
		$ls_sql	= "	SELECT	A.ID_ANGGOTA, B.FULL_NAME,C.ID_TRANSAKSI, C.NO_URUT, C.KODE_TRANSAKSI, C.ID_VARIABEL, D.NAMA_VARIABEL, E.NAMA_TRANSAKSI,
							TO_CHAR(C.TGL_TRANSAKSI,'DD/MM/YYYY') TGL_TRANSAKSI, 
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'POKOK', C.TGL_TRANSAKSI) SIMPANAN_POKOK,
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'WAJIB', C.TGL_TRANSAKSI) SIMPANAN_WAJIB,
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'SUKARELA', C.TGL_TRANSAKSI) SIMPANAN_SUKARELA,
							C.JUMLAH, C.ID_DOK
					FROM	SIS_ANGGOTA A
							JOIN SW_PERSON B ON A.PERSON_ID = B.PERSON_ID
							JOIN SIS_TRANSAKSI_ANGGOTA C ON A.ID_ANGGOTA = C.ID_ANGGOTA
							JOIN SIS_SETUP_VARIABEL D ON C.ID_VARIABEL = D.ID_VARIABEL
							JOIN SIS_SETUP_KODE_TRANSAKSI E ON C.KODE_TRANSAKSI = E.KODE_TRANSAKSI AND E.KODE_TRANSAKSI IN ('SS01','SS02') 
					WHERE	".(post('filter_id_anggota') == '' ? '' : " A.ID_ANGGOTA = '".post('filter_id_anggota')."' AND ").
							"(UPPER(NVL(A.ID_ANGGOTA,'')) LIKE '%".strtoupper(post('keyword'))."%' 
							OR UPPER(NVL(B.FULL_NAME,'')) LIKE '%".strtoupper(post('keyword'))."%' 
							OR UPPER(NVL(D.NAMA_VARIABEL,'')) LIKE '%".strtoupper(post('keyword'))."%' ) 
							".(post('tgl_awal')=='' ? '' : " AND C.TGL_TRANSAKSI >= TO_DATE('".post('tgl_awal')."','DD/MM/YYYY') ")."
							".(post('tgl_akhir')=='' ? '' : " AND C.TGL_TRANSAKSI <= TO_DATE('".post('tgl_akhir')."','DD/MM/YYYY') ")."
					ORDER BY ".(post('sort')=='' ? 'C.ID_TRANSAKSI, C.NO_URUT' : post('sort'))." ".(post('order')=='' ? 'asc' : post('order'));
		
		return json_encode( $this->paging($ls_sql) );
	}
	
	function Add($arr_data){
		$this->db->insert('SIS_TRANSAKSI_ANGGOTA', $arr_data);
	}
	
	function Update($arr_data, $arr_rule){
		$this->db->update('SIS_TRANSAKSI_ANGGOTA', $arr_data, $arr_rule);
	}
	
	function GetSingle($as_idtransaksi){
		$result = $this->db->get_where('SIS_TRANSAKSI_ANGGOTA', array('ID_TRANSAKSI' => $as_idtransaksi));
		if($result->num_rows() == 1){
			return $result->row_array();
		}else{
			return NULL;
		}
	}
	
	function GetSingleView($as_idtransaksi)
	{
		$ls_sql	= "	SELECT	A.ID_ANGGOTA, B.FULL_NAME,C.ID_TRANSAKSI, C.NO_URUT, C.KODE_TRANSAKSI, C.ID_VARIABEL, D.NAMA_VARIABEL, E.NAMA_TRANSAKSI,
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'POKOK', C.TGL_TRANSAKSI) SIMPANAN_POKOK,
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'WAJIB', C.TGL_TRANSAKSI) SIMPANAN_WAJIB,
							F_SIS_GET_SALDO_ANGGOTA(A.ID_ANGGOTA, 'SUKARELA', C.TGL_TRANSAKSI) SIMPANAN_SUKARELA,
							TO_CHAR(C.TGL_TRANSAKSI,'DD/MM/YYYY') TGL_TRANSAKSI, C.JUMLAH, C.ID_DOK
					FROM	SIS_ANGGOTA A
							JOIN SW_PERSON B ON A.PERSON_ID = B.PERSON_ID
							JOIN SIS_TRANSAKSI_ANGGOTA C ON A.ID_ANGGOTA = C.ID_ANGGOTA
							JOIN SIS_SETUP_VARIABEL D ON C.ID_VARIABEL = D.ID_VARIABEL
							JOIN SIS_SETUP_KODE_TRANSAKSI E ON C.KODE_TRANSAKSI = E.KODE_TRANSAKSI
					WHERE	C.ID_TRANSAKSI = '".$as_idtransaksi."'";

		$result = $this->db->query($ls_sql);
		if($result->num_rows() == 1){
			return $result->row_array();
		}else{
			return NULL;
		}
	}

	function DeleteSingle($arr_rule)
	{
		try {
			if(	intval($this->get_data("SELECT COUNT(1) FROM SIS_TRANSAKSI_ANGGOTA WHERE ID_TRANSAKSI = '".$arr_rule['id_transaksi']."' AND ID_DOK IS NOT NULL"))>0)
			{
				return $this->error_delete.' [id: '.$arr_rule['id_transaksi']."]<br />";
			}else{
				$this->db->delete('SIS_TRANSAKSI_ANGGOTA', $arr_rule);
				return '';
			}
		} catch(Exception $e) {
			return $e->getMessage();
		}
	}
}
?>